package com.jyx.spring.action.service.impl;

import java.util.Collection;
import java.util.Map;
import java.util.Properties;

import com.jyx.spring.action.service.IInstrument;
import com.jyx.spring.action.service.IPerformer;

/**
 * 表演者-HANK：可以同时演奏多种乐器，被称为一个人的乐队
 * author jyx
 * email jyxsuper@163.com
 * description: PerformerOfHank
 * Company: myzczk
 * datetime: 2016年11月22日 下午3:35:10
 */
public class PerformerOfHank implements IPerformer {

	/** 乐器组合：拥有多种不同或相同的乐器 */
	private Collection<IInstrument> instruments;
	/** 乐器组合：拥有多种不同或相同的乐器，都有不同名字 */
	private Map<String,IInstrument> instrumentMap; 
	/** 乐器组合：汉克还有很多口技，可以模仿不同乐器发出的不同声音 */
	private Properties instrumentProp;
	@Override
	public void perform() {
		// 各种乐器争相奏鸣，百家齐唱，百鸟争鸣
		for (IInstrument instrument : instruments) {
			instrument.play();
		}
		// hanke 会给每个乐器起一个美丽而富有诗意的名字，方便于使用
		for (String key : instrumentMap.keySet()) {
			System.out.print(key + " : ");
			instrumentMap.get(key).play();
		}
		System.out.println(instrumentProp);
	}

	/** 乐器组合：拥有多种不同或相同的乐器 */
	public Collection<IInstrument> getInstruments() {
		return instruments;
	}

	/** 乐器组合：拥有多种不同或相同的乐器 */
	public void setInstruments(Collection<IInstrument> instruments) {
		this.instruments = instruments;
	}

	/** 乐器组合：拥有多种不同或相同的乐器，都有不同名字 */
	public Map<String, IInstrument> getInstrumentMap() {
		return instrumentMap;
	}

	/** 乐器组合：拥有多种不同或相同的乐器，都有不同名字 */
	public void setInstrumentMap(Map<String, IInstrument> instrumentMap) {
		this.instrumentMap = instrumentMap;
	}

	/** 乐器组合：汉克还有很多口技，可以模仿不同乐器发出的不同声音 */
	public Properties getInstrumentProp() {
		return instrumentProp;
	}

	/** 乐器组合：汉克还有很多口技，可以模仿不同乐器发出的不同声音 */
	public void setInstrumentProp(Properties instrumentProp) {
		this.instrumentProp = instrumentProp;
	}
	
}
